<?php

namespace colciencias\Bundle\WebBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * Criterios
 *
 * @ORM\Table(name="CRITERIOS")
 * @ORM\Entity
 */
class Criterios
{
    /**
     * @var string
     *
     * @ORM\Column(name="DESCRIPCION", type="string", length=300, nullable=false)
     */
    private $descripcion;

    /**
     * @var integer
     *
     * @ORM\Column(name="FORMULARIOS_DE_EVALUACION_ID", type="integer", nullable=false)
     */
    private $formulariosDeEvaluacionId;

    /**
     * @var string
     *
     * @ORM\Column(name="NOMBRE", type="string", length=150, nullable=false)
     */
    private $nombre;

    /**
     * @var integer
     *
     * @ORM\Column(name="PUNTAJE_MAXIMO", type="integer", nullable=false)
     */
    private $puntajeMaximo;

    /**
     * @var string
     *
     * @ORM\Column(name="RECOMENDACION", type="string", length=300, nullable=true)
     */
    private $recomendacion;

    /**
     * @var string
     *
     * @ORM\Column(name="SUSTENTACION", type="string", length=300, nullable=true)
     */
    private $sustentacion;

    /**
     * @var integer
     *
     * @ORM\Column(name="ID", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="SEQUENCE")
     * @ORM\SequenceGenerator(sequenceName="CRITERIOS_ID_seq", allocationSize=1, initialValue=1)
     */
    private $id;

    /**
     * @var \Doctrine\Common\Collections\Collection
     *
     * @ORM\ManyToMany(targetEntity="colciencias\Bundle\WebBundle\Entity\Evaluaciones", inversedBy="criterios")
     * @ORM\JoinTable(name="criterios_evaluacion",
     *   joinColumns={
     *     @ORM\JoinColumn(name="CRITERIOS_ID", referencedColumnName="ID")
     *   },
     *   inverseJoinColumns={
     *     @ORM\JoinColumn(name="EVALUACIONES_ID", referencedColumnName="ID")
     *   }
     * )
     */
    private $evaluaciones;

    /**
     * Constructor
     */
    public function __construct()
    {
        $this->evaluaciones = new \Doctrine\Common\Collections\ArrayCollection();
    }


    /**
     * Set descripcion
     *
     * @param string $descripcion
     * @return Criterios
     */
    public function setDescripcion($descripcion)
    {
        $this->descripcion = $descripcion;

        return $this;
    }

    /**
     * Get descripcion
     *
     * @return string 
     */
    public function getDescripcion()
    {
        return $this->descripcion;
    }

    /**
     * Set formulariosDeEvaluacionId
     *
     * @param integer $formulariosDeEvaluacionId
     * @return Criterios
     */
    public function setFormulariosDeEvaluacionId($formulariosDeEvaluacionId)
    {
        $this->formulariosDeEvaluacionId = $formulariosDeEvaluacionId;

        return $this;
    }

    /**
     * Get formulariosDeEvaluacionId
     *
     * @return integer 
     */
    public function getFormulariosDeEvaluacionId()
    {
        return $this->formulariosDeEvaluacionId;
    }

    /**
     * Set nombre
     *
     * @param string $nombre
     * @return Criterios
     */
    public function setNombre($nombre)
    {
        $this->nombre = $nombre;

        return $this;
    }

    /**
     * Get nombre
     *
     * @return string 
     */
    public function getNombre()
    {
        return $this->nombre;
    }

    /**
     * Set puntajeMaximo
     *
     * @param integer $puntajeMaximo
     * @return Criterios
     */
    public function setPuntajeMaximo($puntajeMaximo)
    {
        $this->puntajeMaximo = $puntajeMaximo;

        return $this;
    }

    /**
     * Get puntajeMaximo
     *
     * @return integer 
     */
    public function getPuntajeMaximo()
    {
        return $this->puntajeMaximo;
    }

    /**
     * Set recomendacion
     *
     * @param string $recomendacion
     * @return Criterios
     */
    public function setRecomendacion($recomendacion)
    {
        $this->recomendacion = $recomendacion;

        return $this;
    }

    /**
     * Get recomendacion
     *
     * @return string 
     */
    public function getRecomendacion()
    {
        return $this->recomendacion;
    }

    /**
     * Set sustentacion
     *
     * @param string $sustentacion
     * @return Criterios
     */
    public function setSustentacion($sustentacion)
    {
        $this->sustentacion = $sustentacion;

        return $this;
    }

    /**
     * Get sustentacion
     *
     * @return string 
     */
    public function getSustentacion()
    {
        return $this->sustentacion;
    }

    /**
     * Get id
     *
     * @return integer 
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Add evaluaciones
     *
     * @param \colciencias\Bundle\WebBundle\Entity\Evaluaciones $evaluaciones
     * @return Criterios
     */
    public function addEvaluacione(\colciencias\Bundle\WebBundle\Entity\Evaluaciones $evaluaciones)
    {
        $this->evaluaciones[] = $evaluaciones;

        return $this;
    }

    /**
     * Remove evaluaciones
     *
     * @param \colciencias\Bundle\WebBundle\Entity\Evaluaciones $evaluaciones
     */
    public function removeEvaluacione(\colciencias\Bundle\WebBundle\Entity\Evaluaciones $evaluaciones)
    {
        $this->evaluaciones->removeElement($evaluaciones);
    }

    /**
     * Get evaluaciones
     *
     * @return \Doctrine\Common\Collections\Collection 
     */
    public function getEvaluaciones()
    {
        return $this->evaluaciones;
    }
}
